22352
8694
Bir dizi istatistik adım var
elma
X
muz
Y
kivi
z
Alfabe denen bir dizide Meyveler ve X, Y ve Z dizisine elma, muz ve Kivi koymam gerekiyor.
Bunun için herhangi bir basit C # mekanizması lütfen? 
Dizini sağlayan IEnumerable  .Where aşırı yüklemesini kullanın.
var meyveler = istatistikadı.Where ((s, i) => i% 2 == 0) .ToArray ();
var alphabets = statsname.Where ((s, i) => i% 2! = 0) .ToArray ();
|
C # 'da Numaralandırılabilir Kullanarak Alternatif Öğeler Nasıl Elde Edilir'den çalındı
var meyveler = myArray.Where ((t, i) => i% 2 == 0) .ToArray ();
var alphabets = myArray.Where ((t, i) => i% 2 == 1) .ToArray ();
|
Sizi doğru anladıysam, ne istediğinizi sormak çok basit:
Meyveleri bir dizi meyveye ve alfabeler için aynı şekilde koymak istiyorsunuz ve bunlar alternatif olarak dizi istatistik adında görünmektedir, bu nedenle:
for (int i = 0, j = 0; i  list = new List  () {"elma", "X", "muz", "Y", "Kivi", "z"};
var sonuç = liste.Seçin ((l, i) => yeni {l, i})
.GroupBy (p => p.i% 2)
(X => x seçin. (V => v.l) .ToList ())
.Listeye();
Sonra bir liste listeniz var:
|
list  meyveler = new List  ();
list  alfabe = new List  ();
for (int i = 0; i  everyOther  (IEnumerable  koleksiyonu)
{
kullanarak (var e = collection.GetEnumerator ()) {
while (e.MoveNext ()) {
getiri getiri e. Akım;
e.MoveNext (); // birini atla
}
}
}
İlk öğeyi atlamak için System.Linq.Skip'i kullanabilirsiniz.
string [] kelimeler = "elma X muz Y Kivi z" .Split ();
var meyveler = everyOther (kelimeler);
var alphabets = everyOther (word.Skip (1));
Bunları yeni bir koleksiyon olarak kullanın veya bunlarda .ToArray () veya .ToList () 'i çağırın:
foreach (meyvelerde f dizisi)
Console.WriteLine (f);
string [] anArray = meyveler.ToArray (); // System.Linq kullanarak
Artık ihtiyacınız olan şey var.
Yineleyiciler, getiri sağlayan yöntemlerdir, bkz. Yineleyiciler (C # Programlama Kılavuzu). Bu, dilin çok güçlü bir özelliğidir. Yapabilirsin:
öğeleri atla
öğeleri süsle
sıralamayı değiştir
sıraları birleştir (bkz. System.Linq.Concat)
...
|
İşte bazı çalışma kodları, umarım bu size yardımcı olur:
Sistem kullanarak;
System.Collections.Generic kullanarak;
System.IO kullanarak;
System.Linq kullanarak;
System.Text kullanarak;
System.Threading.Tasks kullanarak;
ad alanı ReadFile
{
sınıf programı
{
statik void ReadFile (string filePath, List  custumerNames, List  phoneNumbers)
{
string line = string.Empty;
var fileStream = new StreamReader (filePath);
bool isPhoneNumber = true;
while ((line = fileStream.ReadLine ())! = null)
{
eğer (isPhoneNumber)
{
phoneNumbers.Add (Convert.ToInt32 (line));
isPhoneNumber = false;
}
Başka
{
custumerNames.Add (satır);
isPhoneNumber = true;
}
}
fileStream.Close ();
}
statik geçersiz Ana (dize [] değiştirgeler)
{
Console.WriteLine ("Dosyayı okumaya başladım ...");
List  custumersNamesList = new List  ();
List  custumersPhonesNumbers = new List  ();
ReadFile ("SampleFile.txt", custumersNamesList, custumersPhonesNumbers);
// Her iki listenin de aynı uzunlukta olduğunu varsayarsak.
for (int i = 0; i